  O_Left AT %QX0.0: BOOL; (* Output: Moves arm to the left  *)
  O_Right AT %QX0.1: BOOL; (* Output: Moves arm to the right *)
  O_Up AT %QX0.2: BOOL; (* Output: Moves arm up *)
  O_Down AT %QX0.3: BOOL; (* Output: Moves arm down *)
  O_Reach AT %QX0.4: BOOL; (* Output:arm extends and reaches piece *)
  O_Grab AT %QX0.5: BOOL; (* Output: Gripper closes *)
  O_FastX AT %QX0.6: BOOL; (* Output: X axis moves fast *)
  O_FastY AT %QX0.7: BOOL; (* Output: Y axis moves fast *)
  I_ULimit AT %IX0.0: BOOL; (* Input: Y upper limit *)
  I_DLimit AT %IX0.1: BOOL; (* Input: Y lower limit *)
  I_LLimit AT %IX0.2: BOOL; (* Input: X Leftlimit *)
  I_RLimit AT %IX0.3: BOOL; (* Input: x Right Limit *)
  I_Retract AT %IX0.4: BOOL; (* Input: Arm is retracted *)
  I_Extend AT %IX0.5: BOOL; (* Input: Arm is extended *)
  I_Open AT %IX0.6: BOOL; (* Input: Gripper is open *)
  I_Closed AT %IX0.7: BOOL; (* Input: Gripper is closed *)
  S_RTS AT %MX0.0: BOOL; (* State: Ready To Start *)
  S_RUN AT %MX0.1: BOOL; (* State: Running *)
  S_RST AT %MX0.2: BOOL; (* State: Reset *)
  S_HALT AT %MX0.3: BOOL; (* State: Halted *)
  B_Start AT %IX1.0: BOOL; (* Button: Start *)
  B_Stop AT %IX1.1: BOOL; (* Button: Stop *)
  I_Key AT %IX1.2: BOOL; (* Input: Key *)
  B_RST AT %IX1.3: BOOL; (* Button: Reset *)
  XActualP AT %MW10: WORD; (* X Axis actual value *)
  O_Q7 AT %QX1.7: BOOL; (* Output: Q7 Panel *)
  O_Q6 AT %QX1.6: BOOL; (* Output: Q6 Panel *)
  O_Q5 AT %QX1.5: BOOL; (* Output: Q5 Panel *)
  O_Q4 AT %QX1.4: BOOL; (* Output: Q4 Panel *)
  O_Q2 AT %QX1.3: BOOL; (* Output: Q2 Panel *)
  O_Q1 AT %QX1.2: BOOL; (* Output: Q1 Panel *)
  L_RST AT %QX1.1: BOOL; (* LED: Reset *)
  L_START AT %QX1.0: BOOL; (* LED: Start *)
  F_RFCXD AT %MX1.5: BOOL; (* Flag: Reset X Axis Fast Counter Dela *)
  F_RFCX AT %MX1.4: BOOL; (* Flag: Reset X Axis Fast Counter *)
  XDesP AT %MW16: WORD; (* Desired X position *)
  C_X_2 AT %MW12: WORD; (* Auxiliary X positio (enables slow m) *)
  F_SDX AT %MX1.0: BOOL; (* Flag: Slow Down X *)
  F_RFCY AT %MX1.6: BOOL; (* Flag: Resest Y Axis Fast Counter *)
  F_RFCYD AT %MX1.7: BOOL; (* Flag: Reset Y Axis Fast C. Delay *)
  YActualP AT %MW11: WORD; (* Y Axis actual position *)
  C_Y_2 AT %MW13: WORD; (* Auxiliary Y Positio (enables slow m) *)
  YdesP AT %MW17: WORD; (* Desired Y position *)
  F_SDY AT %MX1.1: BOOL; (* Flag: Slow Down on Y *)
  F_SS AT %MX2.0: BOOL; (* Flag: Storing Sequence *)
  XCoord AT %MW14: WORD; (* X Goto Coordinate *)
  YCoord AT %MW15: WORD; (* Y Goto Coordinate *)
  F_SD AT %MX36.0: BOOL; (* Flag: Sequence Done *)
  F_XP AT %MX1.2: BOOL; (* Flag: X at Position *)
  F_YP AT %MX1.3: BOOL; (* Flag: Y at Position *)
  F_TRG AT %MX2.2: BOOL; (* Flag: Triggers an Input / Output seq *)
  F_IOMODE AT %MX2.3: BOOL; (* Flag: Input / Output Mode *)
  F_GTO AT %MX2.4: BOOL; (* Flag: Go to Origin *)
  F_GTP AT %MX2.5: BOOL; (* Flag: Go To Position *)
  F_GTT AT %MX2.6: BOOL; (* Flag: Go To Tray *)
  F_EFY AT %MX3.4: BOOL; (* Flag: Enable Fast Y *)
  f_ATPOS AT %MX7.5: BOOL; (* Flag: At Position *)
  F_SEQ1 AT %MX7.0: BOOL; (* Flag: Sequence 1 *)
  F_SEQ2 AT %MX7.1: BOOL; (* Flag: Sequence 2 *)
  F_DONE AT %MX6.3: BOOL; (* Flag: Done Signal *)
  F_DSTC AT %MX6.8: BOOL; (* Flag: Done Signal To Conveyor *)
  I_Pulse AT %IX1.6: BOOL; (* Input: Start Pulse From Conveyor *)
  F_NP AT %MX5.8: BOOL; (* Flag: Not Pressed *)
  AUX AT %MX63.0: BOOL; (*  *)
  AUX2 AT %MX63.1: BOOL; (*  *)
  F_FIN AT %MX7.6: BOOL; (* Sequence done *)
